import {en} from 'vuetify/locale';

export default {
    $vuetify: en,
    slogan: "Make managing ETCD easier.",
    window: {
        main: "Etcd Workbench",
        settings: "Settings",
    },
    common: {
        confirmTitle: "Please confirm",
        confirm: "Confirm",
        cancel: "Cancel",
        commit: "Commit",
        close: "Close",
        file: "File",
        selectFile: "Select File",
        view: "View",
        readError: "Read Error",
        size: "Size",
        lastModified: "Last Modified",
        enable: "Enable",
        user: "User",
        password: "Password",
        none: "None",
        privateKey: "Private Key",
        sha256: "Sha256",
        sha512: "Sha512",
        other: "Other",
        connect: "Connect",
        failed: "Failed",
        or: "or",
        submit: "Submit",
        appUpdate: "Update",
        install: "Install",
        content: "Content",
        appTip: "System",
        copied: "Copied",
        restart: "Restart",
        refresh: "Refresh",
        typeToSearch: "Type to search",
        successTip: "Succeeded!",
        remove: "Remove",
        edit: "Edit",
        add: "Add",
        save: "Save",
        delete: "Delete",
        recover: "Recover",
        version: "Version",
        lease: "Lease",
        revision: "Revision",
        ttl: "TTL",
        success: "Success",
        omit: "Omit",
        warning: "Warning",
        key: "Key",
        prefix: "Prefix",
        yes: "Yes",
        no: "No",
        paused: "Paused",
        running: "Running",
        start: "Start",
        stop: "Stop",
        copy: "Copy",
        keys: "Keys",
        monitor: "Monitor",
        downloaded: "Downloaded",
        installedUpdates: "Installed Updates",
        imported: "Imported",
    },
    feedback: {
        copyError:"Can not write to clipboard",
        updateMessage: "New version {version} released{releaseDate}, install it now?",
        appErrorIssue: "An error occurred. To help resolve the issue, do you want to report it to the author?",
        appExitNotice: "App will exit later",
        updateErrorTip: "An exception occurred during the update",
        updateRestartConfirm: "Update complete. Restart now to apply?",
        updateUnableTip: "Unable to update",
        openBrowserFailedTip: "Browser opening fails due to: {reason}",
    },
    component: {
        fileSelector: {
            sizeTip: "Selected file is too large!",
            readFileError: "An error occurred while reading the file",
            viewContent: "View file contents",
        },
        tree: {
            expandOrCollapse: "Expand or collapse all",
            searchTip: "To enable/disable directory search, go to settings.",
        },
        completeInput: {
            notice: "Complete the next level directory name according to the input. (Adjust accuracy in Settings)"
        },
        snapshotList: {
            tasks: "Snapshot tasks",
            recent: "Recent snapshot",
            openDir: "Open the file directory",
            emptyStateTitle: "No Records",
            stopSnapshotConfirm: "Are you sure you want to stop data backup?",
        },
        editor: {
            formatError: "Formatting Error",
            format: "Format",
        }
    },
    main: {
        home: {
            newConnection: "New Connection",
            favoritesList: "Favorites List",
            removeFavoritesConfirm: "Are you sure you want to remove this configuration from your favorites list?",
            closeTabConfirm: "Are you sure to close the current connection?",
            closeDirtyTabConfirm: "The current connection has a key being edited. Are you sure you want to discard the changes and close the connection?",
            exitConfirm: "Are you sure you want to exit the application?",
            exitConfirmTitle: "Confirm exit",
            exitWithDirtyTabConfirm: "A changed but unsaved key has been detected. Do you want to discard your changes and exit the application?",
            exiting: "Exiting application....",
            sessionConnLostTip: "Session connection lost due to: {reason}",
            connector: {
                serverConnection: "Server Connection",
                form: {
                    name: "Name",
                    namePlaceholder: "Customize the name of the current connection",
                    host: "Host",
                    hostPlaceholder: "Host of etcd server",
                    port: "Port",
                    namespace: "Namespace",
                    namespacePlaceholder: "Default is empty",
                    auth: "Auth",
                    ssl: "SSL",
                    ssh: "SSH",
                    authDivider: "Authentication",
                    authUsername: "Username",
                    authUsernamePlaceholder: "Etcd authenticated username",
                    authPassword: "Password",
                    authPasswordPlaceholder: "Etcd authenticated password",
                    sslDivider: "SSL/TLS",
                    sslAuthority: "Authority",
                    sslAuthorityPlaceholder: "SSL/TLS authority",
                    sslCAFile: "CA File",
                    sslCAFilePlaceholder: "PEM encoded X509 certificate, less than 128KB.",
                    identity: "Identity",
                    rsaAlgorithm: "Hash algorithm for RSA key",
                    certFile: "Cert file",
                    certFilePlaceholder: "PEM encoded certificate, less than 128KB.",
                    certKetFile: "Cert Key File",
                    certKetFilePlaceholder: "PEM encoded private key, less than 128KB.",
                    sshDivider: "SSH Tunnel",
                    sshHostPlaceholder: "SSH destination host address",
                    sshPortPlaceholder: "SSH connection port",
                    sshUserPlaceholder: "SSH login user",
                    sshPasswordPlaceholder: "SSH login password",
                    sshKeyPlaceholder: "Supported private key formats: Openssh, RSA, PKCS8, PKCS8 Encrypted. Less than 128KB.",
                    sshKeyPasswordPlaceholder: "Passphrase (optional)",
                    testConnect: "Test Connect",
                    save: "Save to Favorites",
                    ruleHost: "Host is required",
                    rulePort: "Port is required",
                    rulePortInvalid: "Port is invalid",
                    ruleUsername: "Username is required",
                    rulePassword: "Password is required",
                    ruleSshHost: "Ssh host is required",
                    ruleHostInvalid: "Host is invalid",
                    ruleUser: "User is required",
                },
                connectionTesting: "Connection testing...",
                testSuccess: "The connection test was successful!",
                connecting: "Connecting...",
                nameEmptyTip: "Connection name can not be empty",
            },
            connection: {
                tabCluster: "Cluster",
                tabKeys: "Keys",
                tabMonitor: "Key Monitor",
                tabLeases: "Leases",
                tabUsers: "Users",
                tabRoles: "Roles",
                keyMonitorAlert: "The monitor is bound to the connection, and it will stop running when the connection session is closed.",
                keyOnly: "Key Only",
                withPrefix: "With Prefix",
                target: "Target",
                eventCreate: "Create",
                eventRemove: "Remove",
                eventValueChange: "Value Change",
                removeMonitor: "Remove Monitor",
                addMonitor: "Add Monitor",
            }
        },
        cluster: {
            metrics: "Metrics",
            metricsBtnTitle: "Query metrics data from etcd server.",
            compact: "Compact",
            compactBtnTitle: "Compacts the event history in the etcd key-value store.",
            defragment: "Defragment",
            defragmentBtnTitle: "Defragment backend database to recover storage space.",
            snapshot: "Snapshot",
            snapshotBtnTitle: "Save snapshot from etcd server to local file",
            clusterInfoTitle: "Cluster Information",
            clusterId: "Cluster ID",
            memberId: "Member ID",
            etcdVersion: "Etcd Version",
            leader: "Leader",
            dbSizeAllocated: "DB Size Allocated",
            dbSizeUsed: "DB Size Used",
            raftIndex: "Raft Index",
            raftAppliedIndex: "Raft Applied Index",
            raftTerm: "Raft Term",
            errors: "Errors",
            everythingOk: "Everything is ok!",
            alarmNoSpace: "Alarm: space quota is exhausted!",
            alarmCorrupt: "Alarm: kv store corruption detected!",
            leaderTag: "leader",
            currentTag: "current",
            peerUri: "Peer URI",
            clientUri: "Client URI",
            compactNotice: "Compacts the event history in the etcd key-value store. The key-value store should be periodically compacted or the event history will continue to grow indefinitely.",
            physical: "Wait for Physical",
            physicalTitle: "Physical is set so the RPC will wait until the compaction is physically applied to the local database such that compacted entries are totally removed from the backend database.",
            defragmentConfirmTip: "Confirm to perform defragmentation?",
            needRevisionTip: "Need a valid revision",
            compactConfirmTip: "Confirm compaction operation?",
            snapshotConfirmTip: "Confirm snapshot creation? Download duration varies by data size.",
        },
        keys: {
            addKey: "Put Key",
            deleteKeys: "Batch Delete",
            myCollections: "My Collections",
            search: "Search",
            searchBtnTitle: "Search from etcd server",
            currentKey: "Current key",
            loadMore: "Load More",
            loadedLine: "Loaded {count} keys",
            loadedLineTitle: "The number of keys loaded",
            removeCollectionTitle: "Remove from collections",
            collect: "Collect",
            monitor: "monitor",
            collectBtnTitle: "Add to collections",
            editBtnTitle: "Edit monitor rule",
            addMonitorBtnTitle: "Add to monitor list",
            versionDiff: "Version Diff",
            copyAndSave: "Copy and Save",
            rename: "Rename",
            k8sFormatNotice: "The kubernetes storage format is protobuf and is automatically formatted into a <strong>readonly</strong> json format.",
            grantedTtl: "Granted TTL",
            createRevision: "Create Revision",
            modifyRevision: "Modify Revision",
            emptyStateHeadline: "Please select a key",
            emptyStateTitle: "Select a key to view its details or edit it",
            diffDialogAlert: "It has automatically used the formatted content.",
            versionA: "Version A",
            versionB: "Version B",
            putThisVersion: "Put This Version",
            fromLabel: "From",
            toLabel: "To",
            deleteFrom: "Delete From key",
            key: "Key",
            completeInputHint: "The key under namespace (if it exists)",
            neverExpire: "Never Expire",
            withTtl: "With TTL",
            withLease: "With Lease",
            ttlHint: "The key expiration time in seconds, optional. If left blank, the key will never expire.",
            leaseHint: "Bind the key to this lease, they share the same lifecycle. Please make sure the lease already exists, otherwise the operation will fail.",
            collectionInputPlaceholder: "Enter key to add to collections",
            searchFromServerPlaceHolder: "Enter the prefix and search from the remote server",
            searched: "Searched",
            searchFromServerTip: "Search all keys from etcd server, and display up to 50 results.",
            resolveConflict: "Resolve Conflict",
            resolveConflictAlert: "The system has detected an intermediate version. Please resolve whether to merge the content before submitting.",
            yourVersion: "Your version",
            latestVersion: "Latest version ({version})",
            resolvedAndSubmit:"Resolved & Submit",
            renamePath: "Rename Path",
            path: "Path",
            deleteOriginKeys: "Delete Origin Keys",
            putStrategy: "Put Strategy",
            coverStrategy: "Cover",
            renameStrategy: "Rename",
            logs: "Logs",
            emptyKeyTip: "Key can not be empty",
            invalidTtlTip:"Please input a valid TTL",
            invalidLeaseTip: "Please input a valid lease ID",
            keyNotChangedTip: "The key has not changed",
            deleteEmptyKeyTip: "Please select at least one key",
            deleteConfirm: "Please confirm to permanently delete these keys:",
            deletingKeyTip: "Deleting keys...",
            addNonUtf8ToCollectionTip: "Unable to add non-utf8 encoded key to collections!",
            addNonUtf8ToMonitorTip: "Unable to monitor non-utf8 encoded key!",
            formatCheckConfirm: "The format checker found incorrect content. Do you want to submit it anyway?",
            noMultipleVersionTip: "No multiple versions, required revision has been compacted",
            failedToLoadReversion: "Failed to load revision {version}: ",
            versionTagCreate: "create",
            versionTagLatest: "latest",
            deleteKeyConfirm: "Please confirm to permanently delete key:",
            putAnywayConfirm: "Are you sure you want to put the content of version <strong style=\"color: #CDDC39;\">{version}</strong> to the latest?",
            pathNameNotChanged: "The path name has not changed",
            renameFailed: "Rename failed: prefix key count ({count}) exceeds limit. Adjust in Settings.",
            confirmDiffTitle: "Please check for changes in this revision",
            confirmDiffBefore: "Before modification",
            confirmDiffAfter: "After modification",
            coverDirtyConfirm: "The current changes have not been saved. Do you want to discard them?",
            exportEmptyKeysTip: "Please select at least one key",
            batchExport: "Batch Export",
            batchImport: "Batch Import",
            batchImportFilePlaceholder: "Please select the files to import in batches.",
            batchExportAndImportAlert: "The task has failed! Number of failed entries: {num}",
        },
        monitor: {
            markAllRead: "Mark All Read",
            clearHistory: "Clear History",
            myMonitors: "My Monitors",
            created: "Created",
            removed: "Removed",
            valueChanged: "Value Changed",
            fromMonitor: "From monitor",
            emptyStateHeadline: "No Notification",
            diffBefore: "Before",
            diffAfter: "After",
            watchStatus: "Watching Status",
            search: "Type to search",
            confirmClearHistory: "Are you sure you want to clear all history?",
            confirmRemoveMonitor: "Are you sure you want to remove this monitor?",
        },
        leases: {
            grantNew: "Grant New Lease",
            leaseId: "Lease ID",
            grantedTtl: "Granted TTL",
            errorStateHeadline: "Something error!",
            errorStateText: "Failed to read lease information, please try again.",
            emptyStateHeadline: "No Leases",
            ttlHint: "The key expiration time in seconds.",
            customId: "Custom ID",
            customIdHint: "ID is the requested ID for the lease. If ID is set to 0 or empty, the lessor chooses an ID.",
            customIdPlaceholder: "Optional",
            leaseExpiredTip: "The lease has expired",
            revokeLeaseConfirm: "The key bound to this lease will also be deleted. Are you sure you want to delete it?",
            requiredTtlTip: "Please fill in valid `TTL` parameters",
            invalidTtlTip: "`TTL` cannot be negative",
        },
        users: {
            addUser: "Add User",
            authEnable: "Auth Enable",
            authDisable: "Auth Disable",
            user: "User",
            roles: "Roles",
            search: "Type to search",
            grantRole: "Grant Role",
            changePassword: "Change Password",
            userPlaceholder: "Please input user account",
            newPassword: "New Password",
            newPasswordPlaceholder: "Please input user password",
            roleHint: "Please select a role",
            rolePlaceholder: "Role",
            authEnableConfirm: "Are you sure you want to turn on the authentication function? You will need to reconnect after executing.",
            authDisableConfirm: "Are you sure you want to turn off authentication? You will need to reconnect after executing this command.",
            revokeUserRoleConfirm: "Confirm to revoke role <strong>{role}</strong> of user <strong>{user}</strong>?",
            requiredPasswordTip: "Password can not be empty",
            deleteUserConfirm: "Are you sure you want to delete this user?<br/><strong>{user}</strong>",
        },
        roles: {
            addRole: "Add Role",
            permission: "Permission",
            operation: "Operation",
            read: "Read",
            write: "Write",
            readAndWrite: "Read and Write",
            revoke: "Revoke",
            grantPermission: "Grant Permission",
            deleteRole: "Delete Role",
            errorStateHeadline: "Something error!",
            errorStateText: "Failed to read role information, please try again.",
            emptyStateHeadline: "No Roles",
            roleName: "Role Name",
            role: "Role",
            keyType: "Key Type",
            allKeys: "All Keys",
            keyHint: "The key here is for the full path and is not related to the namespace of the current connection.",
            keyPlaceholder: "The path of the key",
            revokePermissionConfirm: "Are you sure you want to revoke this permission from role",
            deleteRoleConfirm: "Are you sure you want to delete this role?",
            requiredRoleNameTip: "Role name can not be empty",
            requiredKeyTip: "Key cannot be empty",
        }
    },
    setting: {
        nav: {
            app: "App",
            connection: "Connection",
            keys: "Keys",
            update: "Update",
            donate: "Donate",
            about: "About",
        },
        resetAll: "Reset All",
        theme: "Theme",
        lightTheme: "Light",
        darkTheme: "Dark",
        systemTheme: "System",
        language: "Language",
        connectTimeout: "Connect timeout",
        connectTimeoutDesc: "Timeout for connecting to etcd server, in seconds.",
        requestTimeout: "Request timeout",
        requestTimeoutDesc: "Timeout for requesting etcd server, in seconds.",
        sshConnectTimeout: "SSH connect timeout",
        sshConnectTimeoutDesc: "Timeout for connecting to ssh server, in seconds.",
        closeTab: "Shortcut to close tab",
        closeTabDesc: "Use the {shortcut} shortcut key to close the current connection.",
        fileEncryptKey: "File encrypt key",
        fileEncryptKeyDesc: "An encryption key with a byte length of 16 used to store connection information locally",
        exportConf: "Export connections configuration",
        importConf: "Import connections configuration",
        keySplitter: "Key splitter",
        keySplitterDesc: "Parse the key path into a tree structure separator.",
        maxKeysForSearchSuggestions: "Max keys for search suggestions",
        maxKeysForSearchSuggestionsDesc: "Limits the number of keys searched for input suggestions. Higher values improve accuracy but reduce performance.",
        pathRenameKeyLimit: "Path rename keys limit",
        pathRenameKeyLimitDesc: "Prevents renaming if the path contains more than this number of keys.",
        paginationQuery: "Pagination query",
        paginationQueryDesc: "When the number of keys is large, you can enable paging query to optimize the experience.",
        paginationLimit: "Pagination limit",
        paginationLimitDesc: "Number of queries per page when querying all keys in pagination.",
        searchDirInTree: "Search directories in tree",
        searchDirInTreeDesc: "Enable or disable directory matching during tree searches.",
        checkFormatBeforeSave: "Check format before saving",
        checkFormatBeforeSaveDesc: "Before saving the currently edited key each time, check whether the value format is correct.",
        confirmDiffBeforeSave: "Confirm diff before saving",
        confirmDiffBeforeSaveDesc: "Compare and confirm modifications before saving",
        editorTheme: "Editor theme",
        editorThemeDesc: "Set the Key-Value editor personalized theme.",
        editorLightTheme: "Light theme",
        editorDarkTheme: "Dark theme",
        curVersion: "Version",
        checkUpdate: "Check update",
        downloadInGithub: "Download in GitHub",
        autoUpdate: "Automatic update",
        autoUpdateDesc: "Automatically update when a new version is available.",
        updateSource: "Update source",
        updateSourceDesc: "During the update check or installation, content will be read from the specified source.",
        donateDesc: "Open-source is a labor of love, but even passion projects need to recharge sometimes. You can fuel my coding adventures here:🍵",
        wechatRewards: "Wechat rewards",
        supportAuthorCoffee: "Support the author with a coffee",
        donateViaPayPal: "Donate via PayPal",
        donateViaWechat: "Donate via WeChat",
        opensource: "Opensource",
        license: "License",
        reportBug: "Report Bug",
        goToSubmit: "Go to submit",
        author: "Author",
        emailMe: "Email Me",
        contactOnGithub: "Contact on Github",
        contactOnWechat: "Contact on WeChat",
        encryptKeyLengthTip: "The key length must be 16",
        resetAllConfirm: "Are you sure you want to reset all settings?",
        exportConnectionTip: "Export file successfully",
        importConnectionTip: "Import file successfully",
        checkingUpdate: "Checking updates...",
        alreadyLatestVersionTip: "Your version is already the latest",
        clickToView:"Click to view details",
    }
}